As multiple functions are combined within the same system, the storage media within such a system needs to support a more diverse spectrum of applications. This is especially true of home media devices such as personal video recorders and other devices that have constrained processor and memory resources. Other consumer products are also beginning to contain mass storage technology such as hard discs and optical discs. At least three basic application groups can be identified. Each group has different needs that need to be met by the same storage media. High data transfer rate applications, such as video playback and recording, have hard real time constraints. Medium data transfer rate applications, such as audio playback and recording, have hard real time constraints. Low data transfer rate applications, such as static graphic elements, mail/WWW data and other miscellaneous data, have soft real time constraints.
The number and size of the stored files associated with an application typically follows a related pattern (i) a small number of large size files (e.g., video programs), (ii) a medium number of medium size files (e.g., audio programs), and (iii) a large number of small size files (e.g., static graphic elements, mail/WWW data and other miscellaneous data). For efficient operation, each of these applications uses storage space on the media that needs to be managed by different file systems each optimized for the particular application.
Current storage management solutions from desktop PC and workstation environments partition storage space into one or more partitions. Each partition allocates a fixed portion of the total storage space dedicated to the applications of an associated file system. FIG. 1 illustrates such a partition configuration.
With the implementation shown in FIG. 1, a number of individual partitions (partition 1, partition 2 and partition 3) are each allocated to a different file system. The partitions 1–3 are typically fixed when the storage media is formatted/initialized. If an application using a particular one of the partitions 1–3 uses all of the storage space within the particular partition, the only way the size of the particular partition can be increased is by a re-partition and/or a re-format operation that effects all of the partitions in the system. Re-formatting is time consuming, results in loss of existing stored data and cannot be done while the partitions 1–3 are being used.
There are a number of conventional solutions to these problems. A single partition can be implemented with a general-purpose file system. However, such a general-purpose file system is not optimized for any particular application. Without optimization, such a file system operates inefficiently for one or more of these applications.
A single partition with a general-purpose file system can be implemented to bypass the file system after initialization by using the storage space directly. However, any bypassing of the file system must ensure that the integrity of the file system is not compromised and that synchronization is maintained.
A single partition with a general-purpose file system can be implemented that superimposes a second customized storage management method upon the file system. The superimposition of some other storage management solution to bolster the efficiency of the general purpose file system results in problems similar to fixed partitioning (e.g., the need to re-format and/or re-initialize the partition).
Multiple fixed partitions may be implemented to accept the space restrictions of each application as a system constraint. With such a system, the end user is exposed to an undesirable constraint in the operation of the product dependent on how each fixed partition is used in any particular circumstance.
It would be desirable to implement a method and/or apparatus for dynamically partitioning storage media to support mixed applications with diverse file systems.